package function

trait Trait_Demo {
  /**
   * trait相当于interface,定义公共属性
   * 特质可以定义抽象方法，也可以定义具体方法
   * 抽象类只能定义抽象方法
   */
  def hello(info: String): String
}

class Trait_Test extends Trait_Demo {
  override def hello(info: String): String = {
    println(s"hello,${info}")
    info
  }

}
object Trait_Test{
  def main(args: Array[String]): Unit = {
    /**
     * 实例对象时可以使用with关键字混入特质中的方法
     */
    val test = new Trait_Test() with Trait_Demo
    test.hello("李四")
  }
}
